Maintainability and Source Code Conventions: An Analysis of Open Source Projects
نویسندگان
چکیده
Maintainability is a desirable property of software, and a variety of metrics have been proposed for measuring it, all based on different notions of complexity. Although these metrics are useful, complexity is only one factor influencing maintainability. Practical experience in software development has led to a set of best practices and coding conventions that are believed to make source code easier to read, understand and maintain. Based on a survey of software engineers, we identify the relative importance of 71 coding conventions to maintainability. We propose a metric that offers a different perspective on maintenance, namely a “convention adherence” metric based on the number and severity of violations of these coding conventions. We examine the code repositories of four open-source Java projects to measure their adherence to coding conventions over the life of the project, based on both their self-identified conventions and those of the convention-adherence metric. Through our analysis, we discovered several interesting phenomena, including pre-release effort to bring new code in line with desirable conventions, effective usage of automated code convention checkers as part of the build process to improve adherence, variations in adherence over the software lifecycle, and a class of conventions consistently ignored in open source projects.
منابع مشابه
Comparative Analysis of Software Repository Metrics in BioPerl, BioJava and BioRuby
The open source programming languages, often with a biosuffix, i.e. BioPerl, BioJava, and BioRuby, have been widely used in bioinformatics and computational biology research. The computational tools written in these languages provide multiple functionalities as the languages make them flexible to create customized analysis and examination of biological data. In this paper, we investigate one of...
متن کاملEstablishing Maintainability in Systems Integration: Ambiguity, Negotiations, and Infrastructures
This paper investigates how maintainability can be established in system integration (SI) projects where maintainers have no direct access to the source code of the third-party software being integrated. We propose a model for maintainability in SI focusing on postrelease activities, unlike traditional maintainability models where focus is on pre-release activities. Our model describes maintain...
متن کاملAnalysing Bug Prediction Capabilities of Static Code Metrics in Open Source Software
Open Source Softwares provide a rich resource of empirical research in software engineering. Static code metrics are a good indicator of software quality and maintainability. In this work we have tried to answer the question whether bug predictors obtained from one project can be applied to a different project with reasonable accuracy. Two open source projects Firefox and Apache HTTP Server (AH...
متن کاملA Drill-Down Approach for Measuring Maintainability at Source Code Element Level
Measuring source code maintainability has always been a challenge for software engineers. To address this problem, a number of metrics-based quality models have been proposed by researchers. Besides expressing source code maintainability in terms of numerical values, these models are also expected to provide explicable results, i.e. to give a detailed list of source code fragments that should b...
متن کاملMethod-Level Code Clone Modification using Refactoring Techniques for Clone Maintenance
Researchers focused on activities such as clone maintenance to assist the programmers. Refactoring is a well-known process to improve the maintainability of the software. Program refactoring is a technique to improve readability, structure, performance, abstraction, maintainability, or other characteristics by transforming a program. This paper contributes to a more unified approach for the pha...
متن کامل